Delaying publicizing, at a second source, upload of a content item to a first source until confirmation of availability of the content item at the first source

ABSTRACT

Systems and methods are provided for delaying publicizing, at a second source, upload of a content item to a first source, until confirmation of availability of the content item at the first source. In one or more aspects, a system includes an upload component configured to upload content to a content server, a share component configured to receive selection of a sharing source to post a notification that informs users regarding availability of the content at the content server, a confirmation component configured to receive confirmation from the content server in response to the content becoming available at the content server following the upload of the content, and a notification component configured to post the notification at the sharing source in response to receipt of the confirmation.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/208,687, filed Jul. 13, 2016, which is a continuation of U.S. patentapplication Ser. No. 14/180,105, filed Feb. 13, 2014, each which ishereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

This application generally relates to systems and methods for delayingpublicizing, at a second source, upload of a content item to a firstsource, until confirmation of availability of the content item at thefirst source.

BACKGROUND

A user may upload user generated content to a server in order for thatcontent to be displayed via a website. For example, an established mediasharing system allows users to upload videos for open source sharingwith other users via a website. Once a user's content has been uploadedto the website, the user may want to notify his friends that the contenthas been uploaded and is ready to view. However, there is often a delaybetween when the upload finishes and when the content is available foronline viewing. This forces the user to undertake excessive work. Forexample, after the user uploads his content, the user must repeatedlycheck for the content to be available on the website, and then notifyhis friends once seeing that the content is ready to view. This constantrechecking of the website for availability of the content is a needlesswaste of bandwidth and time.

BRIEF DESCRIPTION OF THE DRAWINGS

Numerous aspects, embodiments, objects and advantages of the presentinvention will be apparent upon consideration of the following detaileddescription, taken in conjunction with the accompanying drawings, inwhich like reference characters refer to like parts throughout, and inwhich:

FIG. 1 illustrates an example system for delaying publicizing, at asecond source, upload of a content item to a first source, untilconfirmation of availability of the content item at the first source, inaccordance with various aspects and embodiments described herein;

FIG. 2 presents an example user interface displaying a notificationinforming a user that content has been uploaded and made available at amedia provider, in accordance with various aspects and embodimentsdescribed herein;

FIG. 3 presents another example user interface displaying a notificationinforming a user that content has been uploaded and made available at amedia provider, in accordance with various aspects and embodimentsdescribed herein;

FIG. 4 presents an example client device that facilitates delayingpublicizing, at a second source, upload of a content item to a firstsource, until confirmation of availability of the content item at thefirst source, in accordance with various aspects and embodimentsdescribed herein;

FIG. 5 presents an example content server that facilitates delayingpublicizing, at a second source, upload of a content item the contentprovider, until confirmation of availability of the content item at thecontent provider, in accordance with various aspects and embodimentsdescribed herein;

FIG. 6 presents an example method for delaying publicizing, at a secondsource, upload of a content item to a first source, until confirmationof availability of the content item at the first source, in accordancewith various aspects and embodiments described herein;

FIG. 7 presents an example method for delaying publicizing, at a secondsource, upload of a content item to a first source, until confirmationof availability of the content item at the first source, in accordancewith various aspects and embodiments described herein;

FIG. 8 presents an example method for delaying publicizing, at a secondsource, upload of a content item to a first source, until confirmationof availability of the content item at the first source, in accordancewith various aspects and embodiments described herein;

FIG. 9 is a schematic block diagram illustrating a suitable operatingenvironment in accordance with various aspects and embodiments.

FIG. 10 is a schematic block diagram of a sample-computing environmentin accordance with various aspects and embodiments.

DETAILED DESCRIPTION

The innovation is described with reference to the drawings, wherein likereference numerals are used to refer to like elements throughout. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth in order to provide a thorough understanding ofthis innovation. It may be evident, however, that the innovation can bepracticed without these specific details. In other instances, well-knownstructures and components are shown in block diagram form in order tofacilitate describing the innovation.

By way of introduction, the subject matter described in this disclosurerelates to systems and methods for delaying publicizing, at a secondsource, upload of a content item to a first source, until confirmationof availability of the content item at the first source. In particular,once a user has uploaded content to a server for display via a websitehosted by the server, the user may want to notify his friends that thecontent has been uploaded and is ready to view at the website. Forexample, the user may want to post a message at his social networkingprofile that informs his social network friends that his content hasbeen uploaded to the website. In another example, the user may want tosend a short messaging service (SMS) message or email to his friendsthat informs his friends regarding the upload of his content to thewebsite. However, there is often a delay between when the uploadfinishes and when the content is available for online viewing at thewebsite. As a result, the user must frequently recheck the website tosee if his content has completed upload and been made available foronline viewing prior to posting the message at his social networkprofile or generating and sending the SMS or email message to hisfriends.

In accommodation of the above scenario, a system is described hereinthat automatically publishes information notifying other user'sregarding the upload of content, by a user, to a content server inresponse to a determination that the content has been made available forviewing at a website hosted by the content server. The manner in whichthe information is published or provided to the other user's can vary.In an aspect, the information is provided to the user in the form of anotification message configured for presentation to the other users vianotification systems respectively employed by mobile devices of theusers. In another aspect, the information is provided to the other usersin the form of a feed item that appears in a feed associated with anaccount of the user, such as a social network profile. According to thisaspect, the other users will include friends of the user who have accessto the user's social network profile. In yet another aspect, theinformation is provided to the other users in the form of an electronicmessage, such as an SMS message or email.

In one embodiment, the system automatically configures the manner inwhich information indicating that a user's content item has beenuploaded and made available at a content provider is provided to therelevant user(s) (e.g., as post at social network, as a mobilenotification, as an email, etc.) and what the information includes(e.g., a description content, a link to the content, a personalizedmessage regarding the content, etc.). In another embodiment, the userwho uploads the content to the content provider can select how anotification regarding the availability of the content at the contentprovider is provided to the relevant user(s) and what information thenotification includes. For example, in conjunction with uploading thecontent (e.g., at the time of initiating transmission of the content tothe content server), the user can write or select a message that informsothers regarding publication of his content, select one or more sources(e.g., social network accounts, personal blogs, devices, etc.) and/ormechanisms (e.g., as a notification, as a feed item, as an email, etc.)for posting/providing the message and select the user's who are allowedto view the message. Once transfer of the content to the content serveris complete and the content is made available for viewing at the contentserver (e.g., via a webpage hosted by the content server), the systemthen automatically executes posting/providing of the message to the oneor more selected sources. In other words, the system delays posting themessage until the content becomes available for viewing at the contentserver.

In one or more aspects, a system includes an upload component configuredto upload content to a content server, a share component configured toreceive selection of a sharing source to post a notification thatinforms users regarding availability of the content at the contentserver, a confirmation component configured to receive confirmation fromthe content server in response to the content becoming available at thecontent server following the upload of the content, and a notificationcomponent configured to post the notification at the sharing source inresponse to receipt of the confirmation.

In another aspect, a method is disclosed that includes sending a contentitem to a content server, wherein the content server is configured toprocess the content and provide the content via a network accessibleinterface in response to receiving the content and receiving selectionof a notification source to send a notification that informs usersregarding availability of the content at the content server. The methodfurther includes receiving confirmation from the content server inresponse to the content becoming available at the content serverfollowing the upload of the content, and sending the notification to thenotification source in response to receipt of the confirmation.

Still in yet another aspect, a system is disclosed that includes anupload component configured to receive uploaded content from a deviceand a processing component configured to process the uploaded contentand make the uploaded content available for access via a networkaccessible source hosted by the system. The system further includes aconfirmation component configured to generate confirmation when theuploaded content is available for access at the source, a sharingcomponent configured to receive, from the device, selection of a sharingsource to send a notification regarding availability of the content atthe source, and a notification component configured to send thenotification to the sharing source in response to the confirmation.

Referring now to the drawings, with reference initially to FIG. 1,presented is a diagram of an example system 100 for delayingpublicizing, at a second source, upload of a content item to a firstsource, until confirmation of availability of the content item at thefirst source in accordance with aspects and embodiments describedherein. Aspects of systems, apparatuses or processes explained in thisdisclosure can constitute machine-executable components embodied withinmachine(s), e.g., embodied in one or more computer readable mediums (ormedia) associated with one or more machines. Such components, whenexecuted by the one or more machines, e.g., computer(s), computingdevice(s), virtual machine(s), etc. can cause the machine(s) to performthe operations described.

System 100 includes content server 102, client device 110 and one ormore external notification sources/locations 122 for receiving anotification regarding availability of a content item uploaded by clientdevice 110 to content server 102. For example, these externalnotification sources 122 can include but are not limited to, otherclient devices 114, a social networking system 116, an electronicmessaging system 118, and/or another system associated with a useraccount 120. Client device 110 can include memory 124 for storingcomputer executable components and instructions and processor 126 tofacilitate operation of the instructions (e.g., computer executablecomponents and instructions) by client device 110. Similarly, contentserver 102 can include memory 106 for storing computer executablecomponents and instructions and processor 108 to facilitate operation ofthe instructions (e.g., computer executable components and instructions)by content server 102.

The various components of system 100 can be connected either directly orvia one or more networks, (not shown). Such network(s) can include wiredand wireless networks, including but not limited to, a cellular network,a wide area network (WAD, e.g., the Internet), a local area network(LAN), or a personal area network (PAN). For example, client device 110can communicate with content server 102 (and vice versa) using virtuallyany desired wired or wireless technology, including, for example,cellular, WAN, wireless fidelity (Wi-Fi), Wi-Max, WLAN, and etc. In anaspect, one or more components of system 100 are configured to interactvia disparate networks.

Content server 102 can include an entity configured to provide contentor content items to a user at a client device (e.g., client device 110or other client device 114) via a network (e.g., the Internet). Forexample, content server 102 can include a website or applicationconfigured to present pictures, articles, blogs, videos, or other typesof content items to client devices via a network. According to thisexample, the content provided by the website or application can beconfigured for downloading, streaming or merely viewing at a clientdevice via the network. In another aspect, content server 102 caninclude an information store that provides access to data included inthe information store via a network.

As used herein, the term content item refers to any suitable data objectthat can be linked to and accessed or otherwise shared via a network andincludes but is not limited to: documents, articles, messages, webpages,programs, applications, and media items. In an aspect, a content itemincludes a data object that can be identified by a URL. The term mediacontent or media item can include but is not limited to: video, livevideo, animations, video advertisements, music, music videos, soundfiles, pictures, and thumbnails. In some aspects, the term media contentor media item includes a collection of media items, such as a playlistor channel including several videos or songs.

A channel can be data content available from a common source or datacontent having a common topic or theme. A channel can be associated witha curator who can perform management actions on the channel. Managementactions may include, for example, adding media items to the channel,removing media items from the channel, defining subscriptionrequirements for the channel, defining presentation attributes forchannel content, defining access attributes for channel content, etc.The channel content can be digital content uploaded to theinternet-based content platform by a channel curator and/or digitalcontent selected by a channel curator from the content available on theInternet-based content platform. A channel curator can be a professionalcontent provider (e.g., a professional content creator, a professionalcontent distributor, a content rental service, a television (TV)service, etc.) or an amateur individual. Channel content can includeprofessional content (e.g., movie clips, TV clips, music videos,educational videos) and/or amateur content (e.g., video blogging, shortoriginal videos, etc.). Users, other than the curator of the channel,can subscribe to one or more channels in which they are interested.

In an exemplary embodiment, content server 102 includes a streamingmedia provider configured to provide streamed media to client devicesover a network. For example, content server 102 can include a mediaprovider that has access to a voluminous quantity (and potentially aninexhaustible number) of shared media (e.g., video and/or audio) files.The media provider can further stream these media files to one or moreusers at respective client devices (e.g., clients 114 or client device110) of the one or more users over a network. The media can be stored inmemory associated with the media provider (e.g., memory 106) and/or atvarious servers employed by media provider and accessed by clientdevices using a networked platform (e.g., a website platform, a cellularapplication) employed by the media provider. For example, the mediaprovider can provide and present media content to a user via a websitethat can be accessed by a client device using a browser. In anotherexample, the media provider can provide and present media to a user viaa mobile/cellular application provided on a client device (e.g., wherethe client device is a smartphone or the like).

Client device 110 (and other client device 114) can include any suitablecomputing device associated with a user and configured to interact withcontent server 102 via a network. For example, client device 110 caninclude a desktop computer, a laptop computer, a television, an Internetenabled television, a mobile phone, a smartphone, a tablet personalcomputer (PC), or a personal digital assistant PDA. As used in thisdisclosure, the terms “content consumer” or “user” refer to a person,entity, system, or combination thereof that employs system 100 (oradditional systems described in this disclosure) using a client device110.

Client device 110 can include client notification platform 112 tofacilitate configuring information/notifications regarding availabilityof content uploaded by client device 110 to content server 102 andsending the information/notifications to one or more notificationssources 122. Similarly, content server 102 can include servernotification platform 104 to facilitate configuringinformation/notifications regarding availability of content uploaded byclient device 110 to content server 102 and sending theinformation/notifications to one or more notifications sources 122.Client notification platform 112 and server notification platform 104can include complimentary and/or same or similar functionality dependingon the implementation of system 100.

In one implementation, client notification platform 112 is configured tosend (e.g., from client device 110) information/notifications to otherusers (e.g., using one or more notification sources 122) regardingavailability of content at content server 102, uploaded by client device110 to content server 102. For example, after a user of client device110 uploads a content item to content server 102, the user may want toshare the content item with his or her friends. For instance, the usermay want to notify his friends that he has just uploaded a new video tohis profile page at content server 102 and direct his friends to gowatch the video. Client notification platform 112 is configured tofacilitate generating a message for sending to the user's friends (e.g.,using one or more notification sources 122) or posting to a communityforum accessible to the user's friends (e.g., a social networking system116), that informs the user's friends regarding the upload of the user'svideo to content server 102.

According to this implementation, client notification platform 112 canfacilitate uploading content from client device 110 to content server102 (e.g., via a network). For example, client device 110 can upload avideo to content server 102 where content server 102 is a media providernamed “Media World” configured to make the video available for viewingby other devices via a network accessible interface (e.g., a website).In association with initiation of uploading of the video to contentserver 102, client notification platform 112 can configure (e.g., basedon predetermined criteria and/or based on user input) a notificationmessage for providing to one or more notification sources 122 followingreceipt of a trigger signal from Media World. The notification messagecan include information informing another user or users regarding theavailability of the video at content server 102. In response to receiptof the trigger signal, client notification platform 112 can send thenotification message to the one or more content sources.

In an aspect, the trigger signal can include receipt of confirmation ofavailability of the video at the content server 102 (e.g., via a webpagehosted by the content server 102). In particular, rather than sendingout the notification message at the time of initiation of upload of thevideo from client device 110 to content server 102, client notificationplatform 112 can delay sending the notification message until receivingconfirmation from server notification platform 104 that the video hascompleted upload and been made available for viewing at content server102 (e.g., via a networked interface such as a website). For example,the process of uploading a video (or other data) from client device tocontent server 102 and processing the video for displaying and makingavailable for viewing at content server 102 (e.g., for streaming fromcontent server via a web based platform or mobile application platform)can require various lengths of time (e.g., from second to minutes)depending on the size of the video and the amount/type of processingassociated with the video. As a result, if a notification messageinforming another user that that video has been uploaded to contentserver 102 is sent to the other user (e.g., at a notification source122) prematurely or before the video is video is made available forviewing at the content server 102 (e.g., before completion of uploadingand processing of the video), the other user may become aggravated whenattempting to find and view in response to the notification message onlyto learn that the video is not yet available.

According to this aspect, client notification platform 112 can send outa notification informing other users regarding availability of the videoat content server 102 after it confirms that the video is in factavailable at the content server 102 following completion of upload ofthe video and any processing associated with making the video availablefor viewing via a networked interface (e.g., a website) employed by thecontent server 102. For example, a user of client device 110 can uploada video from client device 110 to content server 102 and employ clientnotification platform 112 to select, at the time of initiation of theupload, one or more notification sources 122 the user would like topublish a notification regarding the availability of the video atcontent server 102. For example, the user could choose other clientdevices 114 (and associated users) for which to provide the notificationmessage as mobile notification or SMS message. Similarly, the user couldchoose a social networking system 116 at which the user has establisheda profile for which to publish the notification as a feed itemassociated with a feed of the user's profile. The user can also selectthe information to include in the notification message. For example,where the user is named John Lewis, the user can select a notificationmessage that states “John Lewis has just added a new video to hischannel at Media World entitled ‘Lost in the Dark.” The user can alsorequest the notification message include a link to his video at MediaWorld.

After content server 102 receives and processes the video from clientdevice 110 and makes the video available for viewing at content server102 (e.g., via a website hosted by content server 102), servernotification platform 104 can send a confirmation to client device 110informing client device 110 that the video is in fact available forviewing at the content server 102. In response to receipt of theconfirmation from server notification platform 104, client notificationplatform 112 can then send out or publish the notification message atthe one or more selected notification sources 122 (and/or to adesignated user or group of users) on behalf of the user of clientdevice 110. As a result, when another user is prompted to find the videoat the content server based on receipt of the notification message, thevideo will be ready and available for viewing/access.

In another implementation, server notification platform 104 (as opposedto client notification platform 112 in the previous implementation) caneffectuate the sending or publishing of information/notifications toother users (e.g., using one or more notification sources 122) regardingavailability of content at content server 102, uploaded by client device110 to content server 102. According to this implementation, clientnotification platform 112 can facilitate uploading content from clientdevice 110 to content server 102 (e.g., via a network). For example,client device 110 can upload a video to content server 102 where contentserver 102 is a media provider named “Media World” configured to makethe video available for viewing by other devices via a networkaccessible interface (e.g., a website). In association with initiationof uploading of the video to content server 102, client notificationplatform 112 can send a request (e.g., based on user input) to servernotification platform requesting that a notification message be sent toone or more other users (e.g., via one or more notification sources 122)informing the other users that the video is available at content server102. In an aspect, the request can include information to include in thenotification message (e.g., a title of the video, a description of thevideo, a time stamp associated with publication of the video, a link tothe video, information about the uploader, etc.), identification of theone or more user for which to provide the message, and/or selection ofthe one or more notification sources 122 to publish or send thenotification message.

According to this implementation, server notification platform 104 candetermine or confirm when the video has completed upload and been madeavailable for viewing at content server 102 (e.g., via a networkedinterface employed by content server 102). In response to confirmationthat the video is available for viewing at content server, servernotification message can send out or publish the notification message tothe designated user and/or via the designated notification sources. Forexample, server notification platform 104 can employ an electronicmessaging system 118 to configure and send an SMS message or emailmessage to another client device 114 with information indicating theavailability of the video at content server 102. In another example,server notification platform 104 can send the notification message to afeed associated with a designated user profile account, (e.g., a userprofile account of the uploader of the video) at a social network system116. According to this example, the notification message can beconfigured to appear as a feed item at a feed of the user profileaccount.

The manner and form in which a notification is provided by servernotification platform 104 and/or client notification platform, regardingavailability of a content item uploaded to content server 102, (hereinreferred to as an availability notification) can vary. In an aspect, anavailability notification can be sent directly to a targeted user'sclient device 114. As used herein, a user is referred to as a targeteduser if the user is designated by an uploader of the content item, toreceive an availability notification regarding the content item. Forexample, server notification platform 104 or client notificationplatform 112 can configure a notification message for display at aclient device 114 of a targeted user via a notification system orapplication provided at the client device 114. The server notificationplatform 104 or client notification platform 112 can further send thenotification to the client device 114 for processing thereof. Accordingto this example, the notification can be presented to the targeted useralong with various other notifications, unrelated to notificationsgenerated by server notification platform 104 or client notificationplatform 112 (e.g., unrelated to availability notifications). In anotheraspect, an availability notification can be provided to a targeted uservia a notification message sent to the client device 114 of the targeteduser as an SMS message or multimedia message. According to this aspect,server notification platform 104 or client notification platform 112 canconfigure the SMS message and employ a short messaging service todeliver the message to the client device 114. In another aspect, servernotification platform 104 or client notification platform 112 canconfigure a movement and/or modification notification message as anemail and notification posting component can employ an electronicmessaging system to send the email to an email account employed by atarget user.

In yet another aspect, server notification platform 104 or clientnotification platform 112 can configure a movement or modificationnotification for rendering as a feed item at an information feed ownedor under the control of the uploader of the content item to contentserver or a targeted user. The information feed can display a list offeed items representing activity associated with content sources theuploader and/or targeted user is affiliated with (e.g., content server102 and/or a particular channel, webpage, user account, etc, associatedwith content server). In an aspect, the information feed is provided bycontent server 102. According to this aspect, the information feed canbe associated with a user account for the uploader or a targeted userestablished by the uploader or targeted user, respectively, with thecontent server 102 and include feed items regarding activity related tovarious activity associated with content server. In another aspect, theinformation feed can be provided at an account of the uploader or atargeted user at an external social networking system 116 and includefeed items related to activity at the external social networking systemthat the uploader or targeted user is affiliated with (e.g., activityassociated with friend's profiles).

FIG. 2 presents an example user interface 200 at which an availabilitynotification is presented in accordance with various aspects andembodiments described herein. In particular, interface 200 includes anavailability notification 206 regarding a video uploaded to a mediaprovider, Media World, by user “John Lewis.” Interface 200 is generatedat a mobile device of a targeted user that John Lewis requested theavailability notification regarding his video be provided to. Forexample, the targeted user can be a friend of John Lewis. Theavailability notification 206 can be generated and sent by servernotification platform 104 or client notification platform 112 inaccordance with aspects described herein. In particular, theavailability notification 206 can be sent by either server notificationplatform 104 or client notification platform 112 in response toconfirmation that the video has completed upload at Media World and hasbeen made available for viewing at Media World (e.g., via a website orcellular application employed by Media World).

Interface 200 includes various notifications relevant to the targeteduser of the mobile phone. For example, the interface includesnotifications related to Prime News 202, Media World 204, and ChatRoom208. In an aspect, Prime News 202, Media World 204, and ChatRoom 208 arecontent providers frequently visited by the user and/or for whichcellular applications associated with the respective content providersare provided on the mobile phone. In an aspect, the availabilitynotification 206 related to Media World 204 was generated by andreceived from server notification platform 104 or client notificationplatform 112, as described herein. For example, the availabilitynotification 206 indicates that John Lewis added a new video to hischannel at Media World (e.g., a media provider). The availabilitynotification also includes a link to the video at Media World. In anaspect, a notification system employed by the mobile phone can beconfigured to receive process and present the availability notification206 via interface 200.

FIG. 3 presents another example user interface 300 at which anavailability notification is presented in accordance with variousaspects and embodiments described herein. In particular, interface 300including availability notification 304 displayed as a feed item in aninformation center feed 302 associated with a user account. The useraccount can be provided by a variety of systems. In an aspect, the useraccount is associated with a media provider that provides streamingmedia. In another aspect, the user account is associated with a socialnetworking system. In yet another aspect, the user account can beassociated with web browsing system that presents information to theuser relevant to various network sources the user is subscribed to orhas indicated in interest in.

Center feed section 302 includes an availability notification 304related to content provider Media World that is configured to bedisplayed as feed item in center feed section 302. For example, theavailability notification 304 indicates that a video entitled “Under theHood,” has been uploaded to Channel X and includes an embedded versionof the video 306. Availability notification 304 is generated and sent beeither server notification platform 104 or client notification platform112 in response to confirmation of availability of video “Under theHood” at Media World. In an aspect, the availability notification 304 isdisplayed as a feed item at a user account of a targeted user selectedby the user who uploaded the video “Under the Hood” to Channel X. Inanother aspect, the availability notification 304 is displayed as a feeditem at an account of the user who uploaded the video “Under the Hood”to Channel X.

FIG. 4 illustrates an example client device 402 employing a clientnotification platform 404 to delaying publicizing, at a second source,upload of a content item to a first source, until confirmation ofavailability of the content item at the first source, in accordance withaspects and embodiments described herein. Client device 402 can includesame or similar features and functionalities as client device 110 andclient notification platform 404 can employ same or similar features andfunctionalities as client notification platform 112. Client device 402can include memory 416 for storing computer executable components andinstructions and processor 418 to facilitate operation of theinstructions (e.g., computer executable components and instructions) byclient device 402. Repetitive description of like elements employed inrespective embodiments of systems described herein is omitted for sakeof brevity.

Client notification platform 404 includes upload component 406, sharecomponent 408, confirmation component 410, notification component 412and authorization component 414. Upload component 406 is configured toupload (or send, transmit, transfer, etc.) a content item from clientdevice 402 to another source or device. In particular, upload component406 can send a content item to a content server (e.g., content server102 and the like) configured to publish the content item via a networkaccessible interface. For example, upload component 406 can upload avideo (or other type of media item) to a media provider that isconfigured to process the video and make the video available for publicviewing at a website or other network accessible interface (e.g., amobile application, an Internet enable television interface, etc.).

Share component 408 is configured to receive user input regardingwhether to notify and how to notify, other users regarding upload of acontent item from client device 402 to another source. For example,after a user of client device 402 uploads a content item (e.g., a video)to a networked content provider (e.g., the media provider) for sharingvia a website and/or application employed by the content provider, theuser may want to notify his friends via an email, a text message, asocial network posting, etc., regarding the upload so that the user'sfriends will go check out the uploaded content item as provided by thecontent provider. In view of this example, in association with uploadingthe content item (e.g., prior to initiation of uploading or uponinitiation of uploading), share component 408 can provide the uploaderwith an option to share a notification (e.g., an availabilitynotification) regarding the uploaded content item. For example, anuploader of client device 402 can upload a video to networked mediaprovider for provision on the user's personal channel (e.g., profile andassociated webpage) established with the media provider. Using sharecomponent 408, the uploader can request a notification be posted inassociation with uploading of the video to inform his friends regardingthe upload. For instance the uploader can request a notification beposted to his social network profile that tells other user's to checkout his new video on his personal channel at the media provider andinclude a link to the new video. In another example, the uploader canrequest a notification be sent to his friends as an email, text message,mobile notification or voicemail.

In association with selection of the option to share a notificationregarding an uploaded content item, share component 408 can receiveinformation regarding who (e.g., other users or devices of the otherusers) to provide the notification to, how to provide the notification(e.g., as an email, as an SMS message, as a post to a social networkaccount, as a feed item at a social network account, etc.) and/or whatinformation to include in the notification. For example, when a user ofclient device 402 begins the process of uploading a content item fromclient device 402 to an external content server (e.g., prior to sendingof the content item or at initiation of sending the content item), sharecomponent 408 can provide a prompt to the user that asks the userwhether the user would like to share information regarding the uploadedcontent item. The user can then either request to share or deny sharing.

In response to a request to share, share component 408 can receive aselection of how to provide the share (e.g., what notification source122 to provide the notification and form of the share) and/or who toprovide the share to (e.g., user name and/or contact information). Forexample, the share can be in the form of a mobile notification, anemail, an SMS message, and a post to a social network profile or a voicemessage. In an aspect, the uploader can request a notification be sentto an account the uploader has established with the source to which thecontent item is uploaded or another source. In another aspect, theuploader can request a notification be sent to an account another userhas established with the source to which the content item is uploaded oranother source.

For example, the uploader can choose to send information regarding anuploaded content item (e.g., an availability notification) to his socialnetwork profile for rendering as a feed item or other form of post onhis social network profile page. Similarly, the user can choose to sendthe information regarding the upload as a mobile notification to anotheruser. According to this example, the user can provide (or select from adrop down menu) contact information for the other user. It should beappreciated that the disclosed mechanisms for posting or providingnotifications and/or messages regarding uploaded content are merelyexamples and not intended to limit the scope of the subject disclosure.

Share component 408 can also receive information regarding what toinclude in a notification (e.g., an availability notification) regardingan uploaded content item. For example, share component 408 can receiveda personalized message from the uploader regarding the uploaded contentitem. According to this example, the user can want to write a messagefor providing to others regarding the uploaded content item. The messagecan include a variety of user desired information, such as informationthat describes the content item, describes the uploader, describes thesource where the content item is uploaded, advertises other contentitems, etc. Share component 408 can also receive selection of whether toinclude a link to the content item at the source where the content itemis uploaded and/or whether to embed the content item (e.g., an embeddedvideo) in the notification. In aspect, the manner and form of thenotification can be preconfigured. For example, the information includedin a notification for an uploaded video can be preconfigured to includea title of the video, a link to the video, a name of the uploader of thevideo, a name of a channel of the video and/or a time stamp for theupload.

In accordance with aspects described herein, a notification regarding anuploaded content item (e.g., an availability notification) can beprovided to the designated user(s) and/or notification source(s) (e.g.,based on information received by share component 408) following uploadof the content item and in response to a trigger event. In an aspect,the trigger event includes confirmation of availability of the contentitem at the content server to which the content item was uploaded. Forexample, where the content item is a video, depending on the duration ofthe video, the processing associated with the video at the contentserver, and the load of the content server, a significant amount ofdelay can occur between the time at which upload of the video isinitiated and when the video becomes available for viewing via anetworked interface (e.g., a website, an application, an Internetenabled television, etc.) employed by the content server. Accordingly,provision of a notification regarding an uploaded content item (e.g., anavailability notification) can be delayed until confirmation that thecontent item is in fact available for viewing and/or access at thesource to which the content item was uploaded.

In an embodiment, information received by share component 408 regardingwho to provide, how to provide, and what information to include in, anotification regarding an uploaded content item, is sent from clientnotification platform 404 to the content server to which the contentitem is uploaded. According to this embodiment, the content server thenhandles configuring and sending/providing the notification in responseto the trigger event. For example, the content server can process theuploaded content item and determine when the content item is availablefor viewing/access at the content server. Upon confirmation ofavailability, the content server can configure the notification (e.g.,based on information received and provided by share component 408) andsend or post the notification to the designated notification sourceand/or user.

In an aspect, the designated notification source can include a sourcethat requires user authorization to receive the notification. Inparticular, where the uploader has requested the availabilitynotification be posted to an account of the user (e.g., a socialnetworking profile) or using an account of the user (e.g., an emailaccount), the content server will need authorization from the uploaderto post/send the availability notification. According to this aspect,when the uploader requests a notification regarding an uploaded contentitem to be sent to a source that requires user authorization,authorization component 414 can request and receive the authorization.For example, authorization component 414 can have the uploader sign intothe source (e.g., sign into his social network account, sign into hisemail account, etc.). Upon signing in, authorization component 414 canreceive/generate an authorization token that can be used by the contentserver to send the availability notification to the source. In anaspect, authorization component 414 can pass this authorization token tothe server in association with the information sent to the serverreceived by share component 408. (This embodiment is discussed ingreater detail infra with respect to FIG. 5).

In another embodiment, confirmation component 410 is configured toreceive confirmation that a trigger event has occurred. For example,confirmation component 410 can receive confirmation from the contentserver to which a content item was uploaded to from client device 402that the content item has completed upload and is available foraccess/viewing at the content server. According to this embodiment, inclient notification platform 404 can handle configuration of thenotification and sending/providing the notification in response to thetrigger event. For example, upon receipt of confirmation of availabilityof the uploaded content item at the content server, notificationcomponent 412 can configure an availability notification (e.g., based oninformation received and provided to share component 408 at the time ofupload) and send or post the notification to the designated notificationsource and/or user. In another aspect, confirmation component 410 caninform the user of client device 402 regarding confirmation ofavailability of the uploaded content item at the content server. Inresponse to receipt of this confirmation, the user can then manuallyconfigure and send out an availability notification regarding theuploaded content item.

In an aspect, when the uploader requests a notification regarding anuploaded content item to be sent to a source that requires userauthorization, authorization component 414 can request and receive theauthorization. For example, authorization component 414 can have theuploader sign into the source (e.g., sign into his social networkaccount, sign into his email account, etc.). Upon signing in,authorization component 414 can receive/generate an authorization tokenthat can be used by notification component 412 to send the availabilitynotification to the source.

In an aspect, various other events can be defined as trigger events,aside from availability of an uploaded content item at the contentserver to which it was uploaded. For example, a content item can beassociated with a compilation of content items or a piece of a largercontent item. According to this example, a trigger event can includeavailability of the compilation of content items or the larger contentitem at the content server. In another example, a content item caninclude several parts or pieces. According to this example, a triggerevent can include the availability of one of the parts or pieces at thecontent server. In another example, where the content item is a video, atrigger event can include availability of a first portion of the video.For example, where a first half of a video is processed and madeavailable for viewing, a user can begin watching the first half of thevideo as processing of the second half of the video continues. By thetime the user reaches the second half of the video while viewing,processing of the entire video can be complete. Accordingly, a triggerevent can include availability of a sufficient portion of a video suchthat viewing of the video can commence with assurance that processing ofthe video will continue as the video is played so that the video willplay from start to finish without any breaks or delays.

Regardless of the definition of a trigger event, confirmation component410 can receive confirmation that the trigger event has occurred. Inresponse to receipt of the confirmation, notification component 412 canconfigure and send out the notification to the designated users and/orsources based on information received by share component 408. Accordingto this aspect, share component 408 can also receive user input thatdefines a trigger event. This information can further be sent fromclient notification platform 404 to the content server and employed bythe content server to determine occurrence of the trigger event.

For example, an availability notification can be the defaultnotification. In another aspect, an uploader of a content item canrequest that an availability notification be sent regarding an uploadedcontent item when the content item is available at the server to whichit is uploaded. In other aspects, the uploader can define a variety ofother trigger events that control when a notification regarding anuploaded content item is to be sent. For example, a trigger event can bedependent upon a certain point in time (e.g., Dec. 3, 2015 at 2 pm),completion of a project the content item is included in, logging in ofanother user to the source where the notification is to be sent,location of another user to which the notification will be sent,commenting on the uploaded content item, sharing of the uploaded contentitem, amount of viewing of the uploaded content item, or a variety ofother contemplated factors.

FIG. 5 illustrates an example content server 502 employing a servernotification platform 504 to delaying publicizing, at a second source,upload of a content item to the content server, until confirmation ofavailability of the content item at the content server, in accordancewith aspects and embodiments described herein. Content server 502 caninclude same or similar features and functionalities as content server102 and server notification platform 504 can employ same or similarfeatures and functionalities as server notification platform 104.Content server 502 can include memory 518 for storing computerexecutable components and instructions and processor 520 to facilitateoperation of the instructions (e.g., computer executable components andinstructions) by content server 502. Repetitive description of likeelements employed in respective embodiments of systems described hereinis omitted for sake of brevity.

Server notification platform includes upload component 506, processingcomponent 508, confirmation component 510, sharing component 512,notification component 515 and authorization component 516. Uploadcomponent 506 is configured to receive a content item from anotherdevice or source (e.g., client device 402 and the like) as an upload toanother source or device. For example, upload component 506 can receivea video (or other type of media item) in association with a request toprocess the video and make the video available for public viewing at awebsite or other network accessible interface (e.g., a mobileapplication, an Internet enable television interface, etc.) employed bycontent server 502. Processing component 508 is configured to processthe uploaded content item and make the available for viewing/access at awebsite or other network accessible interface (e.g., a mobileapplication, an Internet enable television interface, etc.) employed bycontent server 502.

Confirmation component 510 is configured to confirm occurrence of atrigger event that controls sending of a notification regarding theuploaded content item to another user and/or notification source (e.g.,a notification source 122). For example, confirmation component 510 isconfigured to determine when a content item received at content server502 can completed upload and processing and has been made available foraccess/viewing at a network interface employed by the content server. Inanother example, confirmation component 510 can confirm when acompilation content item formed using an uploaded content item iscompleted and made available for viewing at the content server. In anaspect, information defining a trigger event can be received from theclient device that uploaded the content item to content server 502. Inanother aspect, a trigger event can be predefined by server notificationplatform. For example, availability of an uploaded content item can be adefault trigger event for which notifications regarding the uploadedcontent item are based.

In one embodiment, (discussed with respect to FIG. 4) in response todetermination of occurrence of a trigger event, confirmation component510 is configured to send confirmation of the trigger event back to theclient device from which the uploaded content item was received.According to this embodiment, configuration and sending of anavailability notification is performed at the client device.

In another embodiment, confirmation component 510 is configured toprovide confirmation of the trigger event to notification component 514.Upon receipt of confirmation of a trigger event, notification component514 is configured to configure and send out or post a notification(e.g., an availability notification) regarding the uploaded content itemto another user and/or notification source (e.g., a notification source122). According to this embodiment, in association with receiving anuploaded content item, sharing component 512 can receive user inputregarding whether to notify and how to notify, other users regarding acontent item to content server. Notification component 514 can thenemploy this information to configure and send out the notification.

In particular, in association with receiving an uploaded content item(e.g., prior to initiation of uploading or upon initiation ofuploading), sharing component 512 can receive a request to post or senda notification regarding the uploaded content item to another userand/or source. For example, the uploader can request a notification beposted to his social network profile that tells other user's to checkout his new video on his personal channel at the media provider andinclude a link to the new video. In another example, the uploader canrequest a notification be sent to his friends as an email, text message,mobile notification or voicemail. In association with receipt of arequest to share a notification regarding an uploaded content item,sharing component 512 can receive information regarding who (e.g., otherusers or devices of the other users) to provide the notification to, howto provide the notification (e.g., as an email, as an SMS message, as apost to a social network account, as a feed item at a social networkaccount, etc.) and/or what information to include in the notification.For example, the share can be in the form of a mobile notification, anemail, an SMS message, a post to a social network profile, or a voicemessage. In an aspect, the uploader can request a notification be sentto an account the uploader has established with the source to which thecontent item is uploaded or another source. In another aspect, theuploader can request a notification be sent to an account another userhas established with the source to which the content item is uploaded oranother source.

Sharing component 512 can also receive information regarding what toinclude in a notification (e.g., an availability notification) regardingan uploaded content item. For example, sharing component 512 canreceived a personalized message from the uploader regarding the uploadedcontent item. According to this example, the user can want to write amessage for providing to others regarding the uploaded content item. Themessage can include a variety of user desired information, such asinformation that describes the content item, describes the uploader,describes the source where the content item is uploaded, advertisesother content items, etc. Sharing component 512 can also receiveselection of whether to include a link to the content item at contentserver and/or whether to embed the content item (e.g., an embeddedvideo) in the notification.

As noted above, notification component 514 is configured to generate andand/or effectuate sending/posting of a notification regarding anuploaded content item, based on information received at sharingcomponent 512, in response to determination of confirmation of a triggerevent by confirmation component 510. For example, upon confirmation ofavailability of an uploaded content item at content server 502,notification component can configure the notification (e.g., based oninformation received and provided to sharing component 512 by theuploader) and send or post the notification to the designatednotification source and/or user.

In an aspect, the designated notification source can include a sourcethat requires user authorization to receive the notification. Inparticular, where the uploader has requested the availabilitynotification be posted to an account of the user (e.g., a socialnetworking profile) or using an account of the user (e.g., an emailaccount), the content server will need authorization from the uploaderto post/send the availability notification. According to this aspect,when the uploader requests a notification regarding an uploaded contentitem to be sent to a source that requires user authorization,authorization component 516 can request and receive the authorization.For example, authorization component 516 can have the uploader sign intothe source (e.g., sign into his social network account, sign into hisemail account, etc.). Upon signing in, authorization component 516 canreceive/generate an authorization token that can be used by notificationcomponent 514 to send the availability notification to the source. In anaspect, authorization component 516 can receive the authorization tokenfrom the client device from which the content item was uploaded inassociation with the upload.

In view of the example systems and/or devices described herein, examplemethods that can be implemented in accordance with the disclosed subjectmatter can be further appreciated with reference to flowcharts in FIGS.6-8. For purposes of simplicity of explanation, example methodsdisclosed herein are presented and described as a series of acts;however, it is to be understood and appreciated that the disclosedsubject matter is not limited by the order of acts, as some acts mayoccur in different orders and/or concurrently with other acts from thatshown and described herein. For example, a method disclosed herein couldalternatively be represented as a series of interrelated states orevents, such as in a state diagram. Moreover, interaction diagram(s) mayrepresent methods in accordance with the disclosed subject matter whendisparate entities enact disparate portions of the methods. Furthermore,not all illustrated acts may be required to implement a method inaccordance with the subject specification. It should be furtherappreciated that the methods disclosed throughout the subjectspecification are capable of being stored on an article of manufactureto facilitate transporting and transferring such methods to computersfor execution by a processor or for storage in a memory.

FIG. 6 illustrates a flow chart of an example method for delayingpublicizing, at a second source, upload of a content item to a firstsource, until confirmation of availability of the content item at thefirst source, to a new content source in accordance with aspectsdescribed herein. At 602, a content item is sent to a content server(e.g., via upload component 406), wherein the content server isconfigured to process the content and provide the content via a networkaccessible interface in response to receiving the content. For example,user can take a video on his smartphone and send it to a video hostingwebsite for sharing on his personal profile page or channel establishedwith the video hosting website. At 604, selection is received of anotification source to send a notification that informs users regardingavailability of the content at the content server (e.g., via sharecomponent 408). For example, at the time the uploader sends the video orbefore sending the video, the uploader can choose another user forsending the notification to as an email, text message or mobilenotification. In another example, the uploader can choose a socialnetwork where the uploader has established an account for posting thenotification to as a feed item. At 606, confirmation is received fromthe content server in response to the content becoming available at thecontent server following the upload of the content (e.g., viaconfirmation component 410). For example, confirmation can be receivedwhen the video has completed upload and processing at the content serverand has been made available for viewing at the video hosting website. At608, the notification is then sent to the notification source inresponse to receipt of the confirmation (e.g., via notificationcomponent 412).

FIG. 7 illustrates a flow chart of another example method 700 fordelaying publicizing, at a second source, upload of a content item to afirst source, until confirmation of availability of the content item atthe first source, to a new content source in accordance with aspectsdescribed herein. At 702, a content item is sent to a content server(e.g., via upload component 406), wherein the content server isconfigured to process the content and provide the content via a networkaccessible interface in response to receiving the content. For example,user can take a video on his smartphone and send it to a video hostingwebsite for sharing on his personal profile page or channel establishedwith the video hosting website. At 704, selection is received of asocial network to send a notification that informs users regardingavailability of the content at the content server (e.g., via sharecomponent 408). At 706, selection of a user account at the socialnetwork for providing the notification to is received. At 708,authorization to provide the notification to the social network isreceived (via authorization component 414). For example, at the time theuploader sends the video or before sending the video, the uploader canchoose a social network where the uploader has established an accountfor posting the notification to as a feed item. The uploader can furthersign into his account to authorize sending notifications to the accounton the user's behalf (e.g., by notification component 412). At 710,confirmation is received from the content server in response to thecontent becoming available at the content server following the upload ofthe content (e.g., via confirmation component 410). For example,confirmation can be received when the video has completed upload andprocessing at the content server and has been made available for viewingat the video hosting website. At 712, the notification is then sent tothe notification source in response to receipt of the confirmation andreceipt of the authorization (e.g., via notification component 412).

FIG. 8 presents an example method for delaying publicizing, at a secondsource, upload of a content item to a content server, until confirmationof availability of the content item at the content server, in accordancewith aspects and embodiments described herein. At 802, uploaded contentis from a device by a system having a processor, (e.g., by uploadcomponent 506). At 804, the uploaded content is processed by the systemand made available for access via a network accessible source hosted bythe system (e.g., by processing component 508). For example, the systemcan receive an uploaded video, process the video, and make the videoavailable for streaming via a website. At 806, confirmation is generatedwhen the uploaded content is available for access at the source (e.g.,via confirmation component 510). At 808, selection of a sharing sourceto send a notification regarding availability of the content at thesource is received from the device (e.g., via sharing component 512),and at 810, a notification the notification is sent to the sharingsource in response to the confirmation.

Example Operating Environments

The systems and processes described below can be embodied withinhardware, such as a single integrated circuit (IC) chip, multiple ICs,an application specific integrated circuit (ASIC), or the like. Further,the order in which some or all of the process blocks appear in eachprocess should not be deemed limiting. Rather, it should be understoodthat some of the process blocks can be executed in a variety of orders,not all of which may be explicitly illustrated in this disclosure.

With reference to FIG. 9, a suitable environment 900 for implementingvarious aspects of the claimed subject matter includes a computer 902.The computer 902 includes a processing unit 904, a system memory 906, acodec 905, and a system bus 908. The system bus 908 couples systemcomponents including, but not limited to, the system memory 906 to theprocessing unit 904. The processing unit 904 can be any of variousavailable suitable processors. Dual microprocessors and othermultiprocessor architectures also can be employed as the processing unit904.

The system bus 908 can be any of several types of suitable busstructure(s) including the memory bus or memory controller, a peripheralbus or external bus, and/or a local bus using any variety of availablebus architectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 994), and SmallComputer Systems Interface (SCSI).

The system memory 906 includes volatile memory 910 and non-volatilememory 912. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer902, such as during start-up, is stored in non-volatile memory 912. Inaddition, according to present innovations, codec 905 may include atleast one of an encoder or decoder, wherein the at least one of anencoder or decoder may consist of hardware, a combination of hardwareand software, or software. Although, codec 905 is depicted as a separatecomponent, codec 905 may be contained within non-volatile memory 912. Byway of illustration, and not limitation, non-volatile memory 912 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), or flash memory. Volatile memory 910 includes random accessmemory (RAM), which acts as external cache memory. According to presentaspects, the volatile memory may store the write operation retry logic(not shown in FIG. 9) and the like. By way of illustration and notlimitation, RAM is available in many forms such as static RAM (SRAM),dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM(DDR SDRAM), and enhanced SDRAM (ESDRAM.

Computer 902 may also include removable/non-removable,volatile/non-volatile computer storage medium. FIG. 9 illustrates, forexample, disk storage 914. Disk storage 914 includes, but is not limitedto, devices like a magnetic disk drive, solid state disk (SSD) floppydisk drive, tape drive, Jaz drive, Zip drive, LS-70 drive, flash memorycard, or memory stick. In addition, disk storage 914 can include storagemedium separately or in combination with other storage medium including,but not limited to, an optical disk drive such as a compact disk ROMdevice (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive(CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). Tofacilitate connection of the disk storage devices 914 to the system bus908, a removable or non-removable interface is typically used, such asinterface 916.

It is to be appreciated that FIG. 9 describes software that acts as anintermediary between users and the basic computer resources described inthe suitable operating environment 900. Such software includes anoperating system 918. Operating system 918, which can be stored on diskstorage 914, acts to control and allocate resources of the computersystem 902. Applications 920 take advantage of the management ofresources by operating system 918 through program modules 924, andprogram data 926, such as the boot/shutdown transaction table and thelike, stored either in system memory 906 or on disk storage 914. It isto be appreciated that the claimed subject matter can be implementedwith various operating systems or combinations of operating systems.

A user enters commands or information into the computer 902 throughinput device(s) 928. Input devices 928 include, but are not limited to,a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 904through the system bus 908 via interface port(s) 930. Interface port(s)930 include, for example, a serial port, a parallel port, a game port,and a universal serial bus (USB). Output device(s) 936 use some of thesame type of ports as input device(s). Thus, for example, a USB port maybe used to provide input to computer 902 and to output information fromcomputer 902 to an output device 936. Output adapter 934 is provided toillustrate that there are some output devices 936 like monitors,speakers, and printers, among other output devices 936, which requirespecial adapters. The output adapters 934 include, by way ofillustration and not limitation, video and sound cards that provide ameans of connection between the output device 936 and the system bus908. It should be noted that other devices and/or systems of devicesprovide both input and output capabilities such as remote computer(s)938.

Computer 902 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)938. The remote computer(s) 938 can be a personal computer, a server, arouter, a network PC, a workstation, a microprocessor based appliance, apeer device, a smart phone, a tablet, or other network node, andtypically includes many of the elements described relative to computer902. For purposes of brevity, only a memory storage device 940 isillustrated with remote computer(s) 938. Remote computer(s) 938 islogically connected to computer 902 through a network interface 942 andthen connected via communication connection(s) 944. Network interface942 encompasses wire and/or wireless communication networks such aslocal-area networks (LAN) and wide-area networks (WAN) and cellularnetworks. LAN technologies include Fiber Distributed Data Interface(FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ringand the like. WAN technologies include, but are not limited to,point-to-point links, circuit switching networks like IntegratedServices Digital Networks (ISDN) and variations thereon, packetswitching networks, and Digital Subscriber Lines (DSL).

Communication connection(s) 944 refers to the hardware/software employedto connect the network interface 942 to the bus 908. While communicationconnection 944 is shown for illustrative clarity inside computer 902, itcan also be external to computer 902. The hardware/software necessaryfor connection to the network interface 942 includes, for exemplarypurposes only, internal and external technologies such as, modemsincluding regular telephone grade modems, cable modems and DSL modems,ISDN adapters, and wired and wireless Ethernet cards, hubs, and routers.

Referring now to FIG. 10, there is illustrated a schematic block diagramof a computing environment 1000 in accordance with this disclosure. Thesystem 1000 includes one or more client(s) 1002 (e.g., laptops, smartphones, PDAs, media players, computers, portable electronic devices,tablets, and the like). The client(s) 1002 can be hardware and/orsoftware (e.g., threads, processes, computing devices). The system 1000also includes one or more server(s) 1004. The server(s) 1004 can also behardware or hardware in combination with software (e.g., threads,processes, computing devices). The servers 1004 can house threads toperform transformations by employing aspects of this disclosure, forexample. One possible communication between a client 1002 and a server1004 can be in the form of a data packet transmitted between two or morecomputer processes wherein the data packet may include video data. Thedata packet can include a metadata, e.g., associated contextualinformation, for example. The system 1000 includes a communicationframework 1006 (e.g., a global communication network such as theInternet, or mobile network(s)) that can be employed to facilitatecommunications between the client(s) 1002 and the server(s) 1004.

Communications can be facilitated via a wired (including optical fiber)and/or wireless technology. The client(s) 1002 include or areoperatively connected to one or more client data store(s) 1008 that canbe employed to store information local to the client(s) 1002 (e.g.,associated contextual information). Similarly, the server(s) 1004 areoperatively include or are operatively connected to one or more serverdata store(s) 1010 that can be employed to store information local tothe servers 1004.

In one embodiment, a client 1002 can transfer an encoded file, inaccordance with the disclosed subject matter, to server 1004. Server1004 can store the file, decode the file, or transmit the file toanother client 1002. It is to be appreciated, that a client 1002 canalso transfer uncompressed file to a server 1004 and server 1004 cancompress the file in accordance with the disclosed subject matter.Likewise, server 1004 can encode video information and transmit theinformation via communication framework 1006 to one or more clients1002.

The illustrated aspects of the disclosure may also be practiced indistributed computing environments where certain tasks are performed byremote processing devices that are linked through a communicationsnetwork. In a distributed computing environment, program modules can belocated in both local and remote memory storage devices.

Moreover, it is to be appreciated that various components described inthis description can include electrical circuit(s) that can includecomponents and circuitry elements of suitable value in order toimplement the embodiments of the subject innovation(s). Furthermore, itcan be appreciated that many of the various components can beimplemented on one or more integrated circuit (IC) chips. For example,in one embodiment, a set of components can be implemented in a single ICchip. In other embodiments, one or more of respective components arefabricated or implemented on separate IC chips.

What has been described above includes examples of the embodiments ofthe present invention. It is, of course, not possible to describe everyconceivable combination of components or methodologies for purposes ofdescribing the claimed subject matter, but it is to be appreciated thatmany further combinations and permutations of the subject innovation arepossible. Accordingly, the claimed subject matter is intended to embraceall such alterations, modifications, and variations that fall within thespirit and scope of the appended claims. Moreover, the above descriptionof illustrated embodiments of the subject disclosure, including what isdescribed in the Abstract, is not intended to be exhaustive or to limitthe disclosed embodiments to the precise forms disclosed. While specificembodiments and examples are described in this disclosure forillustrative purposes, various modifications are possible that areconsidered within the scope of such embodiments and examples, as thoseskilled in the relevant art can recognize.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms used to describe such components are intended to correspond,unless otherwise indicated, to any component which performs thespecified function of the described component (e.g., a functionalequivalent), even though not structurally equivalent to the disclosedstructure, which performs the function in the disclosure illustratedexemplary aspects of the claimed subject matter. In this regard, it willalso be recognized that the innovation includes a system as well as acomputer-readable storage medium having computer-executable instructionsfor performing the acts and/or events of the various methods of theclaimed subject matter.

The aforementioned systems/circuits/modules have been described withrespect to interaction between several components/blocks. It can beappreciated that such systems/circuits and components/blocks can includethose components or specified sub-components, some of the specifiedcomponents or sub-components, and/or additional components, andaccording to various permutations and combinations of the foregoing.Sub-components can also be implemented as components communicativelycoupled to other components rather than included within parentcomponents (hierarchical). Additionally, it should be noted that one ormore components may be combined into a single component providingaggregate functionality or divided into several separate sub-components,and any one or more middle layers, such as a management layer, may beprovided to communicatively couple to such sub-components in order toprovide integrated functionality. Any components described in thisdisclosure may also interact with one or more other components notspecifically described in this disclosure but known by those of skill inthe art.

In addition, while a particular feature of the subject innovation mayhave been disclosed with respect to only one of several implementations,such feature may be combined with one or more other features of theother implementations as may be desired and advantageous for any givenor particular application. Furthermore, to the extent that the terms“includes,” “including,” “has,” “contains,” variants thereof, and othersimilar words are used in either the detailed description or the claims,these terms are intended to be inclusive in a manner similar to the term“comprising” as an open transition word without precluding anyadditional or other elements.

As used in this application, the terms “component,” “module,” “system,”or the like are generally intended to refer to a computer-relatedentity, either hardware (e.g., a circuit), a combination of hardware andsoftware, software, or an entity related to an operational machine withone or more specific functionalities. For example, a component may be,but is not limited to being, a process running on a processor (e.g.,digital signal processor), a processor, an object, an executable, athread of execution, a program, and/or a computer. By way ofillustration, both an application running on a controller and thecontroller can be a component. One or more components may reside withina process and/or thread of execution and a component may be localized onone computer and/or distributed between two or more computers. Further,a “device” can come in the form of specially designed hardware;generalized hardware made specialized by the execution of softwarethereon that enables the hardware to perform specific function; softwarestored on a computer readable storage medium; software transmitted on acomputer readable transmission medium; or a combination thereof.

Moreover, the words “example” or “exemplary” are used in this disclosureto mean serving as an example, instance, or illustration. Any aspect ordesign described in this disclosure as “exemplary” is not necessarily tobe construed as preferred or advantageous over other aspects or designs.Rather, use of the words “example” or “exemplary” is intended to presentconcepts in a concrete fashion. As used in this application, the term“or” is intended to mean an inclusive “or” rather than an exclusive“or”. That is, unless specified otherwise, or clear from context, “Xemploys A or B” is intended to mean any of the natural inclusivepermutations. That is, if X employs A; X employs B; or X employs both Aand B, then “X employs A or B” is satisfied under any of the foregoinginstances. In addition, the articles “a” and “an” as used in thisapplication and the appended claims should generally be construed tomean “one or more” unless specified otherwise or clear from context tobe directed to a singular form.

Computing devices typically include a variety of media, which caninclude computer-readable storage media and/or communications media, inwhich these two terms are used in this description differently from oneanother as follows. Computer-readable storage media can be any availablestorage media that can be accessed by the computer, is typically of anon-transitory nature, and can include both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer-readable storage media can be implemented inconnection with any method or technology for storage of information suchas computer-readable instructions, program modules, structured data, orunstructured data. Computer-readable storage media can include, but arenot limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disk (DVD) or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or other tangible and/or non-transitorymedia which can be used to store desired information. Computer-readablestorage media can be accessed by one or more local or remote computingdevices, e.g., via access requests, queries or other data retrievalprotocols, for a variety of operations with respect to the informationstored by the medium.

On the other hand, communications media typically embodycomputer-readable instructions, data structures, program modules orother structured or unstructured data in a data signal that can betransitory such as a modulated data signal, e.g., a carrier wave orother transport mechanism, and includes any information delivery ortransport media. The term “modulated data signal” or signals refers to asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in one or more signals. By way ofexample, and not limitation, communication media include wired media,such as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

In view of the exemplary systems described above, methodologies that maybe implemented in accordance with the described subject matter will bebetter appreciated with reference to the flowcharts of the variousfigures. For simplicity of explanation, the methodologies are depictedand described as a series of acts. However, acts in accordance with thisdisclosure can occur in various orders and/or concurrently, and withother acts not presented and described in this disclosure. Furthermore,not all illustrated acts may be required to implement the methodologiesin accordance with certain aspects of this disclosure. In addition,those skilled in the art will understand and appreciate that themethodologies could alternatively be represented as a series ofinterrelated states via a state diagram or events. Additionally, itshould be appreciated that the methodologies disclosed in thisdisclosure are capable of being stored on an article of manufacture tofacilitate transporting and transferring such methodologies to computingdevices. The term article of manufacture, as used in this disclosure, isintended to encompass a computer program accessible from acomputer-readable device or storage media.

What is claimed is:
 1. A system, comprising: a memory; and a hardwareprocessor that, when executing computer executable instructions storedin the memory, is configured to: receive, from a computing device, arequest to upload a content item to a content server, wherein therequest includes a selected sharing source for indicating availabilityof the content item at the content server; initiate transmission of thecontent item from the computing device to the content server in responseto the request; generate a notification for presentation on an interfacecorresponding to the selected sharing source regarding availability ofthe content item at the content server; inhibit the notification frombeing presented on the interface corresponding to the selected sharingsource until a trigger event has been detected, wherein the triggerevent comprises receiving a confirmation message from the content serverin response to the content item becoming available at the content serverfollowing the transmission of the content item; and automatically,without receiving user input, cause the notification to be presented onthe interface corresponding to the selected sharing source in responseto receiving the confirmation message.
 2. The system of claim 1, whereinthe hardware processor is further configured to receive user inputregarding information to include in the notification.
 3. The system ofclaim 1, wherein the notification can include a link to the content itemat the content server.
 4. The system of claim 1, wherein the contentitem is embedded in the notification.
 5. The system of claim 1, whereinthe selecting sharing source comprises a social network and wherein thenotification is presented as a feed item on the social network.
 6. Thesystem of claim 5, wherein the hardware processor is further configuredto: receive a selection of a user account of the social network toprovide the notification; and provide the notification to the useraccount in response to receiving the confirmation message.
 7. The systemof claim 5, wherein the hardware processor is further configured toreceive an authorization to provide the notification to the socialnetwork by transmitting a request to sign into a user accountcorresponding to a user of the computing device.
 8. A method comprising:receiving, using a hardware processor, a request from a computing deviceto upload a content item to a content server, wherein the requestincludes a selected sharing source for indicating availability of thecontent item at the content server; initiating transmission of thecontent item from the computing device to the content server in responseto the request; generating a notification for presentation on aninterface corresponding to the selected sharing source regardingavailability of the content item at the content server; inhibiting thenotification from being presented on the interface corresponding to theselected sharing source until a trigger event has been detected, whereinthe trigger event comprises receiving a confirmation message from thecontent server in response to the content item becoming available at thecontent server following the transmission of the content item; andautomatically, without receiving user input, causing the notification tobe presented on the interface corresponding to the selected sharingsource in response to receiving the confirmation message.
 9. The methodof claim 8, further comprising receiving user input regardinginformation to include in the notification.
 10. The method of claim 8,wherein the notification can include a link to the content item at thecontent server.
 11. The method of claim 8, wherein the content item isembedded in the notification.
 12. The method of claim 8, wherein theselecting sharing source comprises a social network and wherein thenotification is presented as a feed item on the social network.
 13. Themethod of claim 12, further comprising: receiving a selection of a useraccount of the social network to provide the notification; and providingthe notification to the user account in response to receiving theconfirmation message.
 14. The method of claim 12, further comprisingreceiving an authorization to provide the notification to the socialnetwork by transmitting a request to sign into a user accountcorresponding to a user of the computing device.
 15. A non-transitorycomputer-readable medium containing computer executable instructionsthat, when executed by a processor, cause the processor to perform amethod, the method comprising: receiving a request from a computingdevice to upload a content item to a content server, wherein the requestincludes a selected sharing source for indicating availability of thecontent item at the content server; initiating transmission of thecontent item from the computing device to the content server in responseto the request; generating a notification for presentation on aninterface corresponding to the selected sharing source regardingavailability of the content item at the content server; inhibiting thenotification from being presented on the interface corresponding to theselected sharing source until a trigger event has been detected, whereinthe trigger event comprises receiving a confirmation message from thecontent server in response to the content item becoming available at thecontent server following the transmission of the content item; andautomatically, without receiving user input, causing the notification tobe presented on the interface corresponding to the selected sharingsource in response to receiving the confirmation message.
 16. Thenon-transitory computer-readable medium of claim 15, wherein the methodfurther comprises receiving user input regarding information to includein the notification.
 17. The non-transitory computer-readable medium ofclaim 15, wherein the notification can include a link to the contentitem at the content server.
 18. The non-transitory computer-readablemedium of claim 15, wherein the content item is embedded in thenotification.
 19. The non-transitory computer-readable medium of claim15, wherein the selecting sharing source comprises a social network andwherein the notification is presented as a feed item on the socialnetwork.
 20. The non-transitory computer-readable medium of claim 19,wherein the method further comprises: receiving a selection of a useraccount of the social network to provide the notification; and providingthe notification to the user account in response to receiving theconfirmation message.
 21. The non-transitory computer-readable medium ofclaim 19, wherein the method further comprises receiving anauthorization to provide the notification to the social network bytransmitting a request to sign into a user account corresponding to auser of the computing device.